//chapter09.h
#ifndef _CHAPTER09_h_
#define _CHAPTER09_h_

// 最佳实践
// derived class 在构造时，将必要的构造信息向上传递至base class 构造函数
/*
class Transaction{
public:
    explicit Transaction(const std::string& loginfo);
    void logTransaction(const std::string& loginfo) const; // non-virtual 函数
};

Transaction::Transaction(const std::string& loginfo){
    logTransaction(loginfo); // 非 non-virtual 调用
}

class BuyTransaction:public Transaction{
public:
    BuyTransaction(parameters): Transaction(createLogString(parameters)){} // 将log信息传给Base class 构造函数
private:
    static std::string createLogString(parameters);
}
*/

#endif